package com.cskaoyan.javase.oop1._12anonymous;

/**
 * 匿名（anonymous）或者佚名，指的是没有名字或者名字缺失。
 * 在Java当中，匿名对象指的就是没有名字的对象。
 * 或者，说的更清楚一点，就是：
 *      在创建对象时，就没有引用指向的对象，就是匿名对象！
 *
 * 匿名对象的语法很简单，只需要在方法等位置中写下列语法：
 *      new 类名();
 * 以上语法就得到了一个匿名对象，从实质上看：
 *      该对象没有引用指向，没有所谓的"对象名"，是一个匿名对象。
 *
 * 匿名对象有啥用?怎么用?
 * 匿名对象在创建它的代码行数之后,就再不可用了,所以匿名对象第一个作用是
 *      创建它,然后直接在后面"."使用这个对象
 *      这种方式优点是很方便,无需接收引用,一行就把代码写完了
 *
 * 这种方式在开发中不多见,最常见的匿名对象的使用,需要结合方法:
 *      1.使用匿名对象作为方法的实参
 *      2.使用匿名对象作为方法的返回值
 *
 * @since 16:32
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        Student s = new Student();
        // 直接创建和使用匿名对象
        System.out.println(new Student().name);

        method(s);
        method(new Student());
        Student stu = method();
        stu.test();
    }

    public static void method(Student s) {
        s.test();
    }

    public static Student method(){
        // Student s = new Student();
        // return s;
        return new Student();
    }
}

class Student {
    String name = "zhangsan";

    public void test() {
        System.out.println("hello 你好 ~");
    }
}